Most software installed on computers today is capable of being automatically updated by way of a local or remote software update tool. For example, the Windows operating system and Microsoft's software application suites (such as Microsoft Office) are updatable by way of software update tools such as Windows Update or Office Update. These update tools employ remote computers (such as servers connected to the Internet) to check for whether new versions of operating system and/or application software components are available. If so, the update tools may be utilized to automatically download and install all the files necessary to update the components to their new versions.
Existing software update tools may not only be used to install updated versions of individual components, but also to perform an overall update of the operating system or of application software. For example, on a computer running Windows 8, Windows Update is not only capable of updating individual components of Windows 8, but of updating Windows 8 to Windows 10.
Different software applications utilize different updating methods. Some applications are updated with the use of patches (files containing only new versions of components). Other applications may be updated using download distributions kits that contain an entire updated version. Some applications have update tools that target not only executable components, but also other necessary data for proper operation. For example, anti-malware applications utilize tools that are capable of updating individual software modules, performing an overall application update when switching to a new version, and of updating the data libraries needed to detect malicious software several times a day.
Notably, the size and sophistication of internal computer networks utilized by businesses and other entities and organizations has been steadily increasing. Local computer networks today may employ any one, or combination, of a multitude of different possible network topologies, and are increasingly connected to larger global networks. It is common for larger organizations with various local offices to have separate local area networks serving each office that are connected to one another via the Internet. Such organizations may find it desirable to be able to update the operating system and application software installed on each local workstation computer to reduce the risks of losing confidential data to hackers exploiting vulnerabilities in outdated software versions.
The increasing size of computer networks, combined with the increased variety and complexity of network topologies and the need to update software often, has resulted in increased bandwidth and network overhead costs to organizations. For example, using a remote server to update the software installed on each computer in a local area network of an organization can result in a significant increase in the amount of traffic on the local area network. The more computers are in the network the greater the amount of network bandwidth required to complete the updates without disrupting the proper functioning of the network. A remote update of 100 or more computers could easily increase the amount of traffic on the local area network by an order of magnitude. To deal with such increases in network traffic, organizations must adjust their bandwidth capabilities, which leads to increased network overhead costs. Furthermore, transferring the large amounts of data required to perform frequent software updates to multiple local workstations via a remote server takes significantly longer than transferring the same amount of data between computers within the local area network.
These problems may be solved, in part, by using local (as opposed to remote) update servers to reduce the volume of required traffic and increase the speed of distribution of software updates throughout the local area network.
However, computer networks are often divided into administration groups by the system administrator. Administrative group divisions do not necessarily, and often do not, take network topology into account. This results in the creation of administration groups that may comprise local workstations that reside in different local area network. As a result, a local update server assigned to an administration group may still be tasked with updating one or more computers that reside in one or more different local area networks, resulting in similar increased network traffic and attendant expenditures as would be caused by using a remote server.
There is a need in the art for a system and method for distributing software updates within a network segment that provides for a more efficient distribution of traffic within networks with complex topologies and administrative groups.